package com.woniuxy.api;

import com.woniuxy.api.fallback.FallBackFactoryComponent;
import com.woniuxy.entity.Product;
import com.woniuxy.entity.utils.ResponseEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @Author: 马宇航 hystrix 熔断器
 * @Description: 远程调用接口，调用product服务
 * @DateTime: 22/10/11/0011 14:34
 * @Component: 成都蜗牛学苑
 **/
@FeignClient(value = "myh-product")
public interface RemoteProductServer {
    @GetMapping("/product/{pid}")
    ResponseEntity findById(@PathVariable("pid") Integer pid);
    @PutMapping("/product")
    ResponseEntity updateOne(Product product);
    @GetMapping("/product")
    ResponseEntity searchPrice(@RequestParam("floorPrice") Double floorPrice,@RequestParam("ceilingPrice") Double ceilingPrice);
    /**
     * 第二个方案：必须加@RequestParam注解，否则会被自动转换成post请求。
     * ChangeLog : 1. 创建 (22/10/11/0011 17:16 [马宇航]);
     * @return com.woniuxy.entity.utils.ResponseEntity
    */
    @GetMapping("/product")
    ResponseEntity searchPrice(@RequestParam Map map);
    /**
     * 第三个方案：必须加@SpringQueryMap注解，否则会被自动转换成post请求。
     * ChangeLog : 1. 创建 (22/10/11/0011 17:16 [马宇航]);
     * @return com.woniuxy.entity.utils.ResponseEntity
     */
    @GetMapping("/product/product")
    ResponseEntity searchPrice(@SpringQueryMap Product product);

}
